#ifndef ZGF_BASE_BASETYPE_H
#define ZGF_BASE_BASETYPE_H

#include <assert.h>
#include <Windows.h>

namespace ZGF
{
	typedef char Int8;
	typedef unsigned char UInt8;
	typedef short Int16;
	typedef unsigned short UInt16;
	typedef int Int32;
	typedef unsigned int UInt32;
	typedef long Long;
	typedef unsigned long ULong;
	typedef __int64 Int64;
	typedef unsigned __int64 UInt64;
};

#define MyASSERT(line) assert(line)

#define DEBUG_LOG(loginfo) ZGF_Log::Instance()->WriteDebug("%s, %d, %s", __FUNCTION__, __LINE__, loginfo); 
#define SAFE_DELETE(pObject) do {try{delete pObject; pObject = NULL;}catch(...){DEBUG_LOG("destroy exception")}} while (0);
#define SAFE_DELETE_ARRAY(pArr) do {try{delete[] pObject; pObject = NULL;}catch(...){DEBUG_LOG("destroy exception")}} while (0);

#endif